package com.example.cadmin.ExcelDao;

import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.cadmin.Application;
import com.example.cadmin.entity.Archives;
import com.example.cadmin.entity.Host;
import com.example.cadmin.entityVo.TableVo;
import com.example.cadmin.mapper.ArchivesMapper;
import com.example.cadmin.service.HostService;
import com.example.cadmin.utils.DateFormat;

import java.util.Date;

/**
 * 带RDIF模板解析
 */
public class EmployeesListener extends AnalysisEventListener<TableVo> {
    /**
     * 这个每一条数据解析都会来调用
     *
     * @param data
     * @param context
     */
    @Override
    public void invoke(TableVo data, AnalysisContext context) {
        System.out.println("解析到一条数据:" + JSON.toJSONString(data));
        // 静态方法注入bean解决方案
        ArchivesMapper archivesMapper = Application.ac.getBean(ArchivesMapper.class);
        //保存本地
        if (StrUtil.isNotEmpty(data.getFileName()) && StrUtil.isNotEmpty(data.getNumber())
                && StrUtil.isNotEmpty(data.getLayer()) && StrUtil.isNotEmpty(data.getColumn())) {
            Archives archives = new Archives();
            archives.setReference(data.getReference());
            archives.setFileName(data.getFileName());
            archives.setFileNo(data.getFileNo());
            archives.setNumber(data.getNumber());
            archives.setCurrentLayer(data.getLayer());
            archives.setCurrentColumn(data.getColumn());
            archives.setEntryTime(DateFormat.getTime());
            archives.setStatus(0);
            Date date = DateUtil.date();
            archives.setYear(Convert.toStr(DateUtil.year(date)));
            archives.setUuid(IdUtil.simpleUUID());
            archivesMapper.insert(archives);
        }
    }

    /**
     * 所有数据解析完成了 都会来调用
     *
     * @param context
     */
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {

    }


}

